package com.cjj.common.facade;

import com.cjj.common.entity.dto.security.MenuRole;
import com.cjj.common.entity.po.master.CPermission;
import com.cjj.common.entity.po.master.CRole;
import com.cjj.common.entity.po.master.CUser;

import java.util.List;

/**
 * @author by BrownC_
 * @date 2021/12/20 16:57:29
 * @email ccc-ju@outlook.com
 */
public interface UserFacadeService {

    /**
     * 用户详情
     * @param id 用户ID
     * @return CUser
     */
    CUser getUserInfo(Long id);

    /**
     * 加载用户信息
     * @param userName username / mobile / email
     * @return 用户信息
     */
    CUser loadUserByUserName(String userName);

    /**
     * 通过用户ID查询角色信息
     * @param uid 用户ID
     * @return 角色信息
     */
    List<CRole> getRoleInfoByUid(Long uid);

    /**
     * 根据roleID查询所有url权限
     * @param roleIds 角色ID
     * @return 权限url集合
     */
    List<CPermission> getPermissionsByRoleId(List<Long> roleIds);

    /**
     * 所有url对应的角色信息（用于校验该用户是否拥有该url的权限，接口级校验）
     * @return url对应的角色信息
     */
    List<MenuRole> getMenuRoles();

}
